﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAL;
using DAL.Classes;

namespace Business.Classes
{
    public class UsuarioBusiness
    {
        UsuarioDAL usuarioDAL = new UsuarioDAL();

        public Usuario getUsuarioByID(int id)
        {
            try
            {
                return usuarioDAL.getUsuarioByID(id);
            }
            catch (Exception)
            {
                throw;
            }

        }
        public List<Usuario> getAllUsuarios()
        {
            try
            {
                return usuarioDAL.getAllUsuarios();
            }
            catch (Exception)
            {
                throw;
            }

        }

        public void InsertUsuario(Usuario user)
        {
            try
            {
                usuarioDAL.InsertUsuario(user);
            }
            catch (Exception)
            {
                
                throw;
            }
        }

        public Usuario GetUsuarioByLoginAndPassword(string login, string pass)
        {
            try
            {
                return usuarioDAL.GetUsuarioByLoginAndPassword(login, pass);
            }
            catch (Exception)
            {
                
                throw;
            }
        }

        public List<Usuario> getUsersWithMorePoints(int topUsers)
        {
            try
            {
                return usuarioDAL.getUsersWithMorePoints(topUsers);
            }
            catch (Exception)
            {
                
                throw;
            }
        }

        public List<Usuario> GetSeguidoresByUsuario(Usuario usuarioSeguido)
        {
            try
            {
                return usuarioDAL.GetSeguidoresByUsuario(usuarioSeguido);
            }
            catch (Exception)
            {

                throw;
            }
        }

        public void IncrementaPontos(Usuario user)
        {
            try
            {
                usuarioDAL.IncrementaPontos(user);
            }
            catch (Exception)
            {
                
                throw;
            }
        }

        public void IncrementaPontos(Usuario user, int qtdPontos)
        {
            try
            {
                usuarioDAL.IncrementaPontos(user, qtdPontos);
            }
            catch (Exception)
            {

                throw;
            }
        }

        public bool jahExisteEsseUsuario(string login)
        {
            try
            {
                if (usuarioDAL.GetUsuariosByLogin(login).Count > 0)
                    return true;

                return false;
            }
            catch (Exception)
            {
                
                throw;
            }
        }
    }
}
